package org.mx.spring.password;

import lombok.Getter;

/**
 * 密码读取器抽象类定义
 * 
 * @author john.peng
 *
 */
public abstract class PasswordIO {
	private @Getter String name;
	
	/**
	 * 默认的构造函数
	 */
	public PasswordIO() {
		this("base64");
	}
	
	/**
	 * 构造函数
	 * 
	 * @param name 处理器名称
	 */
	public PasswordIO(String name) {
		super();
		this.name = name;
	}
	
	/**
	 * 将一个密文描述的密码字符串，转换为明文描述的字符串用于后续业务应用
	 * 
	 * @param encrypt 密文描述的密码字符串
	 * @return 解密后的密码
	 */
	public abstract String read(String encrypt);
	
	/**
	 * 将一个明文描述的密码字符串，转换为密文描述的字符串用于后续传递和存储。
	 * 
	 * @param decrypt 明文描述的密码字符串
	 * @return 加密后的密码
	 */
	public abstract String write(String decrypt);
}
